import { http } from "@/utils/http";
import type { RequestResponse } from "./types";

export const userListApi = {
  getFollowUpPlanTaskSearchApi: (data: Params1) => {
    return http.request<RequestResponse<searchResponse>>(
      "post",
      "/api/v1/hdl/app/doctor/user/search",
      { data }
    );
  },
  getFollowUpPlanDoctorAssignHealthManager: (data: Params2) => {
    return http.request<RequestResponse<any>>(
      "post",
      "/api/v1/hdl/app/doctor/assign/healthManager",
      { data }
    );
  }
};
/**
 * 用户列表查询参数类型定义
 * 详细字段说明见注释，便于新手理解
 */
export interface Params1 {
  /** 页码，不能为空，必需，示例值: 1 */
  pageNum: number;
  /** 每页数量，不能为空，必需，最大50，示例值: 10 */
  pageSize: number;
  /** 用户角色Code，可选 */
  roleCode?: string;
  /** 用户姓名，可选 */
  userName?: string;
  /** 关注类型, 1-5星级，可选，示例值: null */
  attentionType?: number | null;
  /** 风险等级Id，可选 */
  riskLevelId?: number;
  /** 健康分类ID，可选 */
  healthCategoryId?: number;
  /** 健管师Id，可选 */
  healthManagerId?: number;
  /** 报告开始时间(毫秒时间戳)，可选 */
  reportStartTime?: string;
  /** 报告结束时间(毫秒时间戳)，可选 */
  reportEndTime?: string;
  /** 随访开始时间(毫秒时间戳)，可选 */
  followUpStartTime?: string;
  /** 随访结束时间(毫秒时间戳)，可选 */
  followUpEndTime?: string;
}
/**
 * 用户列表查询接口返回数据结构定义
 * 详细字段说明见注释，便于新手理解
 */
export interface UserSearchByDoctorVO {
  /** 用户ID */
  userId?: number;
  /** 用户姓名 */
  userName?: string;
  /** 用户角色 */
  userRole?: string;
  /** 性别 */
  gender?: string;
  /** 关注类型, 1-5星级 */
  attentionType?: number;
  /** 健管师Id */
  healthManagerId?: number;
  /** 健管师姓名 */
  healthManagerName?: string;
  /** 医生ID */
  doctorId?: number;
  /** 医生姓名 */
  doctorName?: string;
  /** 风险等级-名称 */
  riskLevel?: string;
  /** 健康分类-名称 */
  healthCategory?: string;
  /** 报告数量 */
  reportCount?: number;
  /** 最近一次检查 */
  lastReportTime?: string;
  /** 最近一次随访时间 */
  lastFollowUpTime?: string;
  /** 家庭ID */
  familyId?: number;
  /** 我的服务用户(false:需要申请操作权限, true:不需要申请操作权限) */
  myServiceUser?: boolean;
  /** 是否为空 */
  emptyFlag?: boolean;
}

/**
 * 用户列表分页查询返回结构
 */
export interface searchResponse {
  /** 当前页 */
  pageNum?: number;
  /** 每页的数量 */
  pageSize?: number;
  /** 总记录数 */
  total?: number;
  /** 总页数 */
  pages?: number;
  /** 结果集 */
  list?: UserSearchByDoctorVO[];
}

interface Params2 {
  /**
   * 家庭ID
   */
  FamilyId: number;

  /**
   * 健康分类ID
   */
  HealthCategoryId?: number;

  /**
   * 健管师ID
   */
  HealthManagerId: number;

  /**
   * 用户ID（用户列表接口返回用户ID）
   */
  UserId: number;
}
